package com.qqtech.qquan.circle.dao;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.qqtech.core.frame.dao.BaseDao;
import com.qqtech.qquan.circle.model.CircleTopic;
import com.qqtech.qquan.circle.model.CircleTopicQuery;
import com.qqtech.qquan.circle.model.CircleTopicVo;

public interface CircleTopicDao extends BaseDao<CircleTopic> {
	
	/**
	 * 更新一个圈子的所有话题的信息
	 * @param topic
	 * @return
	 */
	int updateByCircleId(CircleTopic topic);
	
	/**
	 * 增加点击量
	 * @param topicId
	 * @param pv
	 * @return
	 */
	int increasePv(int topicId, int pv);
	
	/**
	 * 增加（减少）评论数
	 * @param topicId
	 * @param addCount
	 * @return
	 */
	int increaseComment(Integer topicId, int addCount);
	
	/**
	 * 增加（减少）点赞数
	 * @param topicId
	 * @param addCount
	 * @return
	 */
	int increasePraise(Integer topicId, int addCount);
	
	/**		
	 * 后台查询 --分页
	 * @param query
	 * @param pageable
	 * @return
	 */
	Page<CircleTopicVo> queryPageListAdmin(CircleTopicQuery query, Pageable pageable);
	/**
	 * 后台查询 --列表
	 * @param query
	 * @param pageable
	 * @return
	 */
	List<CircleTopicVo> queryList4Admin(CircleTopicQuery query, Pageable pageable);
	/**
	 * 后台查询记录数
	 * @param query
	 * @return
	 */
	public int queryCountAdmin(CircleTopicQuery query);
	
	/**
	 * 根据圈子id查询话题发布人id列表
	 * @param circleId
	 * @return
	 */
	List<Integer> queryCreatorIds(Integer circleId);
	
	/**
	 * 根据话题发布人id查询圈子id列表【最新发布话题的圈子排在前面】
	 * @param userId
	 * @return
	 */
	List<Integer> queryMyTopicCircleIds(Integer userId);
	
}
